package com.yunxi.vip.pojo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.activiti.pojo.ActivitiVO;
import com.yunxi.bizToBaseData.pojo.AttachReqVO;
import com.yunxi.core.web.DateJsonDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by chenmeng on 2019/9/6.
 */
@Data
public class VipManageVO implements Serializable {

    @ApiModelProperty(value = "申请单主键")
    private String applyId;

    @ApiModelProperty(value = "客户id")
    private String vipId;

    @ApiModelProperty(value = "客户名称")
    private String vipName;

    @ApiModelProperty(value = "标题")
    private String title;

    @ApiModelProperty(value = "客户类型")
    private Integer vipType;

    @ApiModelProperty(value = "联系人")
    private String mainLinkman;

    @ApiModelProperty(value = "联系人电话")
    private String mainPhone;

    @ApiModelProperty(value = "详细地址")
    private String vipAddr;

    @ApiModelProperty(value = "渠道商")
    private String partnerCode;

    private String partnerName;

    @ApiModelProperty(value = "业务类型")
    private String businessType;

    private String businessTypeCn;

    @ApiModelProperty(value = "购车用途")
    private String purpose;

    @ApiModelProperty(value = "区域")
    private String region;

    @ApiModelProperty(value = "车系")
    private String seriesName;

    @ApiModelProperty(value = "1厂0店")
    private Integer submitType;

    @ApiModelProperty(value = "报备日期")
    private Date submitDate;

    @ApiModelProperty(value = "提报人")
    private String submitUser;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "细节描述")
    private String memo;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "总数量")
    private Integer vcount;

    @ApiModelProperty(value = "总金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "清单列表")
    private List<VipApplyDetailVO> listDetail;

    private String taskId;

    private String instanceId;

    private ActivitiVO activitiVO = new ActivitiVO();

    private Date dealTime;

    @ApiModelProperty(value = "附件")
    private List<AttachReqVO> attachVOList = new ArrayList<AttachReqVO>();

    private BigDecimal discount;

    private BigDecimal discountAmount;

    private String partnerFinancial;
    private String partnerFinancialName;

    private String roleCode;

    private String startDate;

    private String endDate;

    private String applyNo;

    private String auditUserId;

    private String partnerCodeNot;

    private String payway;

    //实销

    private String orderCustomerId;

    @ApiModelProperty(value = "客户id")
    private String customerId;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "客户类型 (普通，企业/同CRM) 1车主2线索6潜客")
    private String customerType;

    @ApiModelProperty(value = "统一社会信用代码")
    private String unitSocialCreditCode;

    @ApiModelProperty(value = "法人")
    private String legalPerson;

    @ApiModelProperty(value = "采购人员")
    private String buyerPerson;

    @ApiModelProperty(value = "证件类型")
    private String idType;

    @ApiModelProperty(value = "证件号")
    private String idNumber;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "年龄")
    private Integer age;

    @ApiModelProperty(value = "公司电话")
    private String companyPhone;

    @ApiModelProperty(value = "手机电话")
    private String phone;

    @ApiModelProperty(value = "email")
    private String email;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "销售顾问姓名")
    private String saleAssist;

    @ApiModelProperty(value = "车辆销售状态0已销售1已上牌")
    private String carSaleStatus;

    @ApiModelProperty(value = "VIN")
    private String vin;

    @ApiModelProperty(value = "省")
    private String saleProvince;

    private String saleProvinceName;

    private String saleCityName;

    @ApiModelProperty(value = "市")
    private String saleCity;

    private String saleCountryName;

    @ApiModelProperty(value = "区")
    private String saleCountry;

    @ApiModelProperty(value = "车牌号")
    private String carNo;

    @ApiModelProperty(value = "销售网店编号")
    private String saleInternetNo;

    @ApiModelProperty(value = "销售网店名称")
    private String saleInternetName;

    @ApiModelProperty(value = "销售价格")
    private String salePrice;

    @ApiModelProperty(value = "选装包价格")
    private String packagePrice;

    @ApiModelProperty(value = "车辆用途1普通购车2体验车3试驾车")
    private String carUsed;

    @ApiModelProperty(value = "客户建档日期")
    private String createRecordDate;

    @ApiModelProperty(value = "开票日期")
    private String openInvoiceDate;

    @ApiModelProperty(value = "出库日期")
    private String outTime;

    @ApiModelProperty(value = "发票号")
    private String invoiceNo;

    @ApiModelProperty(value = "紧急联系人")
    private String urgentName;

    @ApiModelProperty(value = "紧急联系人电话")
    private String urgentPhone;

    @ApiModelProperty(value = "公司名称")
    private String company;

    @ApiModelProperty(value = "公司地址")
    private String companyAddr;

    @ApiModelProperty(value = "准驾类型")
    private String driverLicenseType;

    @ApiModelProperty(value = "驾驶证有效")
    private String driverLicenseValidate;

    @ApiModelProperty(value = "法人手机")
    private String legalPersonPhone;

    @ApiModelProperty(value = "驾驶证件号")
    private String driverLicenseNo;

    @ApiModelProperty(value = "实际营运地址")
    private String operationAddr;

    @ApiModelProperty(value = "实际存放地址")
    private String storeAddr;

    @ApiModelProperty(value = "渠道商手机")
    private String partnerPhone;

    @ApiModelProperty(value = "渠道商地址")
    private String partnerAddr;

    @ApiModelProperty(value = "渠道商联系人")
    private String partnerLinkMan;

    @ApiModelProperty(value = "车系代码")
    private String brandCode;

    @ApiModelProperty(value = "车系名称")
    private String brandName;

    @ApiModelProperty(value = "车型代码(物料码)")
    private String vehicleCode;

    @ApiModelProperty(value = "车型名称")
    private String vehicleName;

    @ApiModelProperty(value = "外饰代码")
    private String colorOutCode;

    @ApiModelProperty(value = "外饰名称")
    private String colorOutName;

    @ApiModelProperty(value = "内饰代码")
    private String colorInnerCode;

    @ApiModelProperty(value = "内饰名称")
    private String colorInnerName;

    @ApiModelProperty(value = "定金")
    private BigDecimal frontMoney;

    @ApiModelProperty(value = "价格")
    private BigDecimal price;

    @ApiModelProperty(value = "价格折扣类型")
    private String priceTypeName;

    @ApiModelProperty(value = "价格折扣值")
    private String priceTypeValue;

    @ApiModelProperty(value = "牌照号")
    private String licensePlateNumber;

    @ApiModelProperty(value = "合格证号")
    private String certNo;

    @ApiModelProperty(value = "交车日期")
    private Date interchange;

    @ApiModelProperty(value = "上牌日期")
    private Date cardDate;

    @ApiModelProperty(value = "保险起始日期")
    private String insuranceDateRange;

    @ApiModelProperty(value = "公告车型号")
    private String invoiceVehicleType;

    @ApiModelProperty(value = "开户帐号")
    private String bankAccount;

    @ApiModelProperty(value = "开户行")
    private String bank;

    @ApiModelProperty(value = "发票编号")
    private String invoiceBo;

    @ApiModelProperty(value = "发票税率")
    private BigDecimal invoiceRate;

    @ApiModelProperty(value = "保险公司")
    private String insurerNo;

    @ApiModelProperty(value = "购买险种")
    private String insurerType;

    @ApiModelProperty(value = "交车开始时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date deliveryStartTime;

    @ApiModelProperty(value = "交车结束时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date deliveryEndTime;

    @ApiModelProperty(value = "出库开始时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date stockOutStartTime;

    @ApiModelProperty(value = "出库结束时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date stockOutEndTime;

    @ApiModelProperty(value = "零售单编号")
    private String orderCustomerNo;

    @ApiModelProperty(value = "是否上报")
    private Integer isReported;

    @ApiModelProperty(value = "是否购买服务包")
    private String isBuyServicePack;

    @ApiModelProperty(value = "是否退车0未退1已退")
    private Integer isCancelVehicle;

    @ApiModelProperty(value = "购车类型/是否购买保险Y/N（APP暂时未给到PMS）")
    private String buyCarType;

    @ApiModelProperty(value = "使用人")
    private String user;

    @ApiModelProperty(value = "使用人电话")
    private String userPhone;

    @ApiModelProperty(value = "选装包代码")
    private String customPackCode;

    @ApiModelProperty(value = "选装包名称")
    private String customPackName;

    @ApiModelProperty(value = "购车方案 1-->购车 2-->体验车 3-->畅想车")
    private Integer buyType;

    @ApiModelProperty(value = "渠道商名称")
    private String partnerNameDea;

    @ApiModelProperty(value = "车辆用途(Vehicle_Purpose,1普通购车,2体验车,3试驾车)")
    private Integer vehiclePurpose;
}
